export default {
  // 开启命名空间
   namespaced: true,
  
  // 存储数据
  state:()=>({
    // 收获地址
    address: JSON.parse(uni.getStorageSync('address') || '{}'),
    
    // 用户token
     // 登录成功之后的 token 字符串
      token: uni.getStorageSync('token') || '',
    // 用户信息
    userinfo: JSON.parse(uni.getStorageSync('userinfo') || '{}') ,
    
    // 重定向的 object 对象 { openType, from }
      redirectInfo: null
  }),
  
  mutations:{
    // 更新收获地址
    updateAddress(state,address){
      state.address = address
      
      //  2. 通过 this.commit() 方法，调用 m_user 模块下的方法
      this.commit('m_user/saveAddressStorage')
    },
    
    // 1. 定义将 address 持久化存储到本地 mutations 方法
    saveAddressStorage(state){
       uni.setStorageSync('address',JSON.stringify(state.address))
    },
    
    // 更新用户信息
    updataUserInfo(state,userinfo) {
      state.userinfo = userinfo
      
      // 持久化存储数据
       this.commit('m_user/saveUserInfoToStorage')
    },
    
    // 将 userinfo 持久化存储到本地
     saveUserInfoToStorage(state) {
       uni.setStorageSync('userinfo', JSON.stringify(state.userinfo))
     },
     
      // 更新 token 字符串
       updateToken(state, token) {
         state.token = token
         // 通过 this.commit() 方法，调用 m_user 模块下的 saveTokenToStorage 方法，将 token 字符串持久化存储到本地
         this.commit('m_user/saveTokenToStorage')
       },
     
       // 将 token 字符串持久化存储到本地
       saveTokenToStorage(state) {
         uni.setStorageSync('token', state.token)
       },
       
       updateRedirectInfo(state,info){
         state.redirectInfo = info
         console.log(state.redirectInfo);
       }
  },
  
  // 数据包装器
  getters: {
    // 详细地址
    addstr(state){
      // 判断是否为空对象
     if (!state.address.provinceName) return ''
       // 拼接 省，市，区，详细地址 的字符串并返回给用户
      return state.address.provinceName + state.address.cityName + state.address.countyName + state.address.detailInfo
    }
  }
}